<template>
  <el-container style="min-height: 100vh">
    <el-aside :width="sideWidth + 'px'"
              style="background-color: rgb(238, 241, 246); box-shadow: 2px 0 6px rgb(0 21 41 / 35%);">
      <Aside :is-collapse="isCollapse" :logo-text-show="logoTextShow"/>
    </el-aside>

    <el-container>
      <el-header style="border-bottom: 1px solid;">
        <Header :collapse-btn-class="collapseBtnClass" @asideCollapse="collapse" :user="user"/>
      </el-header>

      <el-main>
        <!-- 表示当前页面的子路由会在 router-view 中展示-->
        <router-view @refreshUser="getUser"/>
      </el-main>
    </el-container>
  </el-container>
</template>

<script>
import Aside from "@/components/Aside";
import Header from "@/components/Header";

export default {
  name: 'HomeView',
  data() {
    return {
      collapseBtnClass: "el-icon-s-fold",
      isCollapse: false,
      logoTextShow: true,
      sideWidth: 200,
      user: {}
    }
  },
  components: {Aside, Header},
  created() {
    this.getUser();
  },
  methods: {
    getUser() {
      let userName = localStorage.getItem("user") ? JSON.parse(localStorage.getItem("user")).userName : ""
      if (userName) {
        // 从后台获取User数据
        this.request.get("/user/username/" + userName).then(res => {
          // 重新赋值后台的最新User数据
          this.user = res.data
        })
      }
    },
    collapse() {
      this.isCollapse = !this.isCollapse;
      if (this.isCollapse) { // 收缩
        this.sideWidth = 64;
        this.collapseBtnClass = "el-icon-s-unfold";
        this.logoTextShow = false;
      } else { // 展开
        this.sideWidth = 200;
        this.collapseBtnClass = "el-icon-s-fold";
        this.logoTextShow = true;
      }
    }
  }
}
</script>

<style>
.headerBg {
  background-color: #eee !important;
}
</style>
